package pub.wkq.common.utils;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomUtils;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class SMSUtilsRetry {
    /**
     * 发送验证码，在内部先生成 6 位验证码
     * @return 验证码
     */
    public static boolean sendSms() {
        int num = RandomUtils.nextInt(1, 4);
        log.info("随机数为 num = {}", num);
        switch (num) {
            case 1:
                log.info("模拟发送短信失败");
                throw new IllegalArgumentException("模拟发送短信失败");
            case 2:
                log.info("模拟发送短信成功");
                return true;
            case 3:
                log.info("模拟数组异常");
                throw new ArrayIndexOutOfBoundsException("模拟数组异常");
            case 4:
                log.info("调用正常但是第三方返回的参数不对，针对false则需要自行处理");
                //第三方sdk一般都会返回不同的状态码，对照状态码列表可以自行做处理。
                return false;
        }
        throw new NullPointerException("模拟空指针异常");
    }
}


